package com.haust.cart.service;

import com.haust.commons.pojo.HaustResult;
import com.haust.pojo.TbUser;

import java.util.List;
import java.util.Map;

public interface CartService {

    /**
     * 创建订单的步骤之：
     * 删除购物车中添加的商品
     *
     * @param list map   key      valule
     *                  itemId  通过商品id查找 购物车中的商品
     *                  num     用于事务回滚时的 数据恢复
     *
     * @param userId 用户的id ，通过用户id,查找购物车
     *
     * @return
     */
    HaustResult clearCart4CreateOrder(
            List<Map<String, Object>> list,
            Long userId
    );

    /**
     * 结算
     * @param id   购物车中商品的id
     * @return
     */
    HaustResult goSettlement(Long[] id,TbUser user);
    /**
     *  修改购物车中 添加的商品数量
     * @param itemId 商品id
     * @param num   购物车商品数量
     * @param user 用户
     * @return
     */
    HaustResult updateItemNum(Long itemId, Integer num,TbUser user);

    HaustResult showCart(TbUser user);

    /**
     *  添加购物车
     * @param itemId 商品id
     * @param num 商品数量
     * @return
     */
    HaustResult addItem(Long itemId, Integer num,TbUser user);
}
